/**
 * 
 */
package com.gwcloud.leetcode.tags.tree;

import java.util.LinkedList;
import java.util.Queue;

import com.gwcloud.leetcode.common.datastructure.TreeNode;

/**
 * @ClassName   : Leetcode0111 
 * @author      : ganwei 
 * @date        : 2020年5月20日
 * @Description : Leetcode0111 二叉树的最小深度
 */
public class Leetcode0111 {
	/**
	 * -深度优先遍历
	 */
    public int minDepth(TreeNode root) {
    	if(root == null){
    		return 0;
    	}
    	Queue<TreeNode> queue = new LinkedList<TreeNode>();
    	queue.offer(root);
    	int sd = 1;
    	while(!queue.isEmpty()){
    		int length = queue.size();
    		for(int i = 0; i < length; i++){
    			TreeNode node = queue.poll();
    			if(node.left == null && node.right == null){
    				return sd;
    			}
    			
    			if(node.left != null){
    				queue.offer(node.left);
    			}
    			
    			if(node.right != null){
    				queue.offer(node.right);
    			}
    		}
    		sd++;
    	}
    	
    	return sd;
    }
    
    public void main(String[] args){
    	
    }
}
